Velha Shapefile incluindo Dezembro de 2017

In [11]:
# imports
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
import numpy as np
import matplotlib.cm as cm
import matplotlib.colors as cls
from pandas import Series, DataFrame
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, zoomed_inset_axes, mark_inset
import matplotlib.ticker as ticker
from collections import defaultdict, namedtuple
from pandas import ExcelWriter
import xlsxwriter
import pandas as pd
import calendar

# set default font 
plt.rcParams["font.family"] = "Times New Roman"

# set seaborn plot style

import seaborn as sns 
sns.set()
sns.set_context("paper")
sns.set_style("whitegrid")
In [12]:
# more imports
import pickle
import datetime
from scipy import stats
import itertools
import statistics
In [13]:
def get_ecos():
    m = Basemap(projection='cyl')
    shpf = m.readshapefile('ecoregions2017/ecoregions2017','ecos',linewidth=0.1)
    return m.ecos_info, m.ecos
In [15]:
m = Basemap(projection='cyl')
shpf = m.readshapefile('ecoregions2017/ecoregions2017','ecos',linewidth=0.1)
ecos_info, ecos = m.ecos_info, m.ecos
In [14]:
months = [calendar.month_name[i +1][:3] for i in range(12)]
In [16]:
Eco = namedtuple('Eco', ['name', 'biome_name', 'biome_num', 'area'])
info_dict = {eco['ECO_ID']:Eco(eco['ECO_NAME'],eco['BIOME_NAME'],eco['BIOME_NUM'], eco['SHAPE_AREA']) for eco in ecos_info}

eco_names = []
for i in range(847):
    name = info_dict[i].name
    if type(name) == bytes:
        name = name.decode('latin-1') 
    eco_names.append(name)

biome_names = []
for i in range(847):
    biome_names.append(info_dict[i].biome_name)

biome_nums = []
for i in range(847):
    biome_nums.append(info_dict[i].biome_num)
    
areas = []
for i in range(847):
    areas.append(info_dict[i].area)
In [17]:
biome_nums[0] = 0.0
In [18]:
result = {}
for i in range(1,18):
    suf = '20{0:02d}'.format(i)
    in_file= 'result' + suf
    result[suf] = DataFrame(np.load(in_file), columns =months)
In [19]:
for year in result:
    result[year].index.name ='Eco_Id'
In [20]:
for year in result:
    result[year] =  result[year].transpose()
In [21]:
head = DataFrame()
head = head.assign(ECO_NAME = eco_names, BIOME_NUM=biome_nums,BIOME_NAME=biome_names,AREAS= areas).transpose()
In [22]:
result['Atributos'] = head
In [23]:
df_finall = pd.concat(result)

Variação inter-anual. Totais.

<<<

In [58]:
years = [str(y) for y in range(2001,2018)]
In [56]:
# número total de burned pixels por ano
annual_total = [ df_finall[n*12: (n+1) *12].sum().sum() for n in range(17)]
In [60]:
fig, ax = plt.subplots()
labels = years[::2]
ax.plot(years, annual_total)
ax.set_xticks(labels)
ax.set_xticklabels(labels, fontsize=15)
ax.set_title('Interannual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.tight_layout()
plt.show()
In [64]:
years_float = np.array([float(yr) for yr in years])
In [67]:
fig, ax = plt.subplots()
labels = years[::2]
slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, annual_total)
ax.plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax.plot(years, annual_total,'o')
ax.set_xticks(labels)
ax.set_xticklabels(labels, fontsize=15)
ax.set_title('Interannual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.legend(prop={'size': 15})
plt.tight_layout()
plt.show()  

Variação intra-anual. Totais.

<<<

In [75]:
monthly_total = [ df_finall[n: 12*17:12].sum().sum() for n in range(12)]
In [79]:
fig, ax = plt.subplots()


ax.plot( np.arange(12),monthly_total,'0')
ax.set_xticks(np.arange(12))
ax.set_xticklabels(months, fontsize=15)


ax.set_title('Intra-annual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)

plt.setp(labels_y,fontsize=15)

plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.tight_layout()
plt.show()
In [80]:
fig, ax = plt.subplots()
slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monthly_total)
ax.plot(np.arange(12), intercept + slope*np.arange(12), 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax.plot( np.arange(12),monthly_total)
ax.set_xticks(np.arange(12))
ax.set_xticklabels(months, fontsize=15)


ax.set_title('Intra-annual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)

plt.setp(labels_y,fontsize=15)

plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.legend(prop={'size': 15})
plt.tight_layout()
plt.show()

Variação intermensal, totais

<<<

ym = itertools.product(years,months)

In [90]:
all_months = [df_finall.iloc[m].sum() for m in range(17*12)]
In [92]:
ymlabels = [ m + ' ' + y[-2:] for y, m in ym]


fig, ax = plt.subplots(figsize=(16,12))
labels = ymlabels[::6]
ax.plot( np.arange(12*17),all_months)
ax.axhline(y=statistics.mean(all_months), color='r', linestyle='--', label='average')
ax.set_xticks(np.arange(0,12*17,6))
ax.set_xticklabels(labels,fontsize=12, rotation=30)
labels_y = ax.get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax.set_title('Intra-monthly Variability',fontsize=15)
plt.legend()
plt.show()

Variação inter_anual em cada bioma

<<<

In [93]:
biome_names_dict = dict( (num, name) for num, name in zip(biome_nums, biome_names))
In [94]:
areas_biome = df_finall.loc['Atributos'].loc['AREAS'].groupby(biome_nums).sum()
In [44]:
annual_biome = [ df_finall[n*12: (n+1) *12].sum() for n in range(17)]
annual_biome = [ ab.groupby(biome_nums).sum()/areas_biome for ab in annual_biome]
ar_annual_biome = np.array(annual_biome)
anbio = ar_annual_biome.T
In [96]:
fig, ax = plt.subplots(5,3, figsize =(18,12) , sharey=True)
labels = years[::2]
for i in range(5):
    for j in range(3):
        slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, anbio[i*3 + j])
        ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
        ax[i][j].plot(years, anbio[i*3 + j], 'o')
        ax[i][j].set_xticks(labels)
        ax[i][j].set_xticklabels(labels,fontsize=15)
        labels_y = ax[i][j].get_yticklabels()
        plt.setp(labels_y,fontsize=15)
        ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
        ax[i][j].legend(fontsize=15)         
fig.tight_layout()
plt.show()

Sem a mesma escala

In [97]:
fig, ax = plt.subplots(5,3, figsize =(18,12))
for i in range(5):
    for j in range(3):
        ax[i][j].plot(years, anbio[i*3 + j])
        labels = ax[i][j].get_xticklabels()
        ax[i][j].set_title(biome_names_dict[i*3 + j])
        plt.setp(labels, rotation=30, fontsize=10) 
fig.tight_layout()
plt.show()

Variação intra_anual em cada bioma

<<<

In [98]:
monthly_biome = [ df_finall[n: 12*17:12].sum() for n in range(12)]
monthly_biome = [mb.groupby(biome_nums).sum()/areas_biome for mb in monthly_biome]
ar_monthly_biome = np.array(monthly_biome)
monbio = ar_monthly_biome.T
In [101]:
fig, ax = plt.subplots(5,3, figsize =(18,12) , sharey=True)
labels = months
for i in range(5):
    for j in range(3):
        #slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monbio[i*3 + j])
        #ax[i][j].plot(months, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
        ax[i][j].plot(months, monbio[i*3 + j], 'o')
        ax[i][j].set_xticks(np.arange(12)) 
        ax[i][j].set_xticklabels(labels,fontsize=15)
        labels_y = ax[i][j].get_yticklabels()
        plt.setp(labels_y,fontsize=15)
        ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
        ax[i][j].legend(fontsize=15)         
fig.tight_layout()
plt.show()

Sem escala comum

In [102]:
fig, ax = plt.subplots(5,3, figsize =(18,12) )
labels = months
for i in range(5):
    for j in range(3):
        #slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monbio[i*3 + j])
        #ax[i][j].plot(months, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
        ax[i][j].plot(months, monbio[i*3 + j], 'o')
        ax[i][j].set_xticks(np.arange(12)) 
        ax[i][j].set_xticklabels(labels,fontsize=15)
        labels_y = ax[i][j].get_yticklabels()
        plt.setp(labels_y,fontsize=15)
        ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
        ax[i][j].legend(fontsize=15)         
fig.tight_layout()
plt.show()

Variação inter-anual por mês em cada bioma

<<<

In [116]:
biome_grouped = df_finall[:12*17].groupby(df_finall.loc['Atributos'].loc['BIOME_NUM'], axis=1)
biomes_pa = biome_grouped.sum()/areas_biome
intra_biome = [ b for a, b in biomes_pa.groupby(biomes_pa.index.get_level_values(level=1),sort=False)]
In [1]:
# intra_biome
In [120]:
labels = years[::2]

for b in range(15):
    fig, ax = plt.subplots(4,3, figsize =(20,12) , sharey= True)
    fig.suptitle(biome_names_dict[b],fontsize=15)
    for i in range(4):
        for j in range(3):
            data = intra_biome[i*3 + j][b]
            slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, data)
            ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
            ax[i][j].plot(years, data, 'o', label='_nolegend_')
            ax[i][j].set_xticks(labels) 
            ax[i][j].set_xticklabels(labels,fontsize=15)
            labels_y = ax[i][j].get_yticklabels()
            plt.setp(labels_y,fontsize=15)
            ax[i][j].set_title(calendar.month_name[i*3 + j +1],fontsize=15)
            ax[i][j].legend(fontsize=15)
    fig.tight_layout(rect=[0, 0.03, 1, 0.95])
    plt.show()
In [121]:
labels = years[::2]
for b in range(15):
    fig, ax = plt.subplots(4,3, figsize =(20,12) , sharey= True)
    fig.suptitle(biome_names_dict[b],fontsize=15)
    for i in range(4):
        for j in range(3):
            data = intra_biome[i*3 + j][b]
            #slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, data)
            #ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
            sns.regplot(years_float, data, ax=ax[i][j])
            #ax[i][j].set_xticks(labels) 
            #ax[i][j].set_xticklabels(labels,fontsize=15)
            #labels_y = ax[i][j].get_yticklabels()
            #plt.setp(labels_y,fontsize=15)
            ax[i][j].set_title(calendar.month_name[i*3 + j +1],fontsize=15)
            ax[i][j].set_ylabel('')
            #ax[i][j].legend(fontsize=15)
    #fig.tight_layout(rect=[0, 0.03, 1, 0.95])
    plt.show()

Mapas

Total por Ecoregião

<<<

In [126]:
total_ecoreg = df_finall.iloc[:12*17].sum() / df_finall.iloc[12*17]
In [127]:
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = 1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()

total_trans = np.log1p(total_ecoreg.values.astype('float'))/np.log1p(total_ecoreg.max())

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Index Burned Area 2001-2017'

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')

plt.show()
fig.savefig('totalecologstd', dpi=1200, bbox_inches='tight')
In [2]:
%qtconsole

Total por biomas

<<<

In [26]:
areas_biome = df_finall.loc['Atributos'].loc['AREAS'].groupby(biome_nums).sum()
In [27]:
biome_grouped = df_finall[:][:12*17].groupby(df_finall.loc['Atributos'].loc['BIOME_NUM'], axis=1)
In [28]:
total_biome = biome_grouped.sum().sum()
In [29]:
total_biome_area = total_biome/areas_biome

sem transformação

In [30]:
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = int(total_biome_area.max()) +1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()

#total_trans = np.log(total_pa + 1)/np.log(total_pa.max() + 1)

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_biome_area[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
    != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_biome_area[0] ))))

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Biomes Burned Px / Area 2001-2017'

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomesnotransform2', dpi=1200, bbox_inches='tight')

com transformação

In [ ]:
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = 1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()

total_trans = np.log1p(total_biome_area)/np.log1p(total_biome_area.max())

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
    != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[0] )))) #cuidado estou a eliminar rock

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Biomes Index Burned  2001-2017'

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform2', dpi=1200, bbox_inches='tight')
In [31]:
%%HTML
<img src="biomeslogtransform2.png">

Variação interanual por ecorregiões

<<<

In [32]:
intereco =[ df_finall[n*12: (n+1) *12].sum()/areas for n in range(17)]
intereco_max= max(map(max,intereco))
In [41]:
years = [str(y) for y in range(2001,2018)]
In [ ]:
for yr in range(17):
    fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
    for spine in plt.gca().spines.values():
        spine.set_visible(False)
    cmap = plt.get_cmap('OrRd')


    min_val = 0
    max_val = 1

    norm = cls.Normalize(min_val, max_val)
    cmmapable = cm.ScalarMappable(norm, cmap)
    cmmapable.set_array(range(min_val, max_val))

    ecos_info, ecos = get_ecos()

    total_trans = np.log1p(intereco[yr])/np.log1p(intereco_max)

    patches = []
    for info, ec in zip(ecos_info,ecos):
        patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))

    ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


    title = 'Index Burned Area ' + years[yr]

    cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
    cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

    cb.set_label(title, fontsize=20, family='Times New Roman')
    cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')

    plt.show()
    fig.savefig('ecologstd' + years[yr], dpi=1200, bbox_inches='tight')















2017

In [42]:
yr = 16
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = 1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()

total_trans = np.log1p(intereco[yr])/np.log1p(intereco_max)

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Index Burned Area ' + years[yr]

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')

plt.show()
fig.savefig('ecologstd' + years[yr], dpi=1200, bbox_inches='tight')

Variação inter-anual por biomas

<<<

In [ ]:
denominador = np.log1p(max(map(max,annual_biome)))
for yr in range(17):
    fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
    for spine in plt.gca().spines.values():
        spine.set_visible(False)
    cmap = plt.get_cmap('OrRd')


    min_val = 0
    max_val = 1

    norm = cls.Normalize(min_val, max_val)
    cmmapable = cm.ScalarMappable(norm, cmap)
    cmmapable.set_array(range(min_val, max_val))

    ecos_info, ecos = get_ecos()
    

    total_trans = np.log1p(annual_biome[yr])/denominador

    patches = []
    for info, ec in zip(ecos_info,ecos):
        patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
        != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock

    ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


    title = 'Biomes Index Burned' +  years[yr]

    cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
    cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

    cb.set_label(title, fontsize=20, family='Times New Roman')
    cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
    plt.show()
    fig.savefig('biomeslogtransform' + years[yr], dpi=1200, bbox_inches='tight')
In [59]:
denominador = np.log1p(max(map(max,annual_biome)))
yr = 16
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = 1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()


total_trans = np.log1p(annual_biome[yr])/denominador

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
    != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Biomes Index Burned' +  years[yr]

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + years[yr], dpi=1200, bbox_inches='tight')
In [60]:
open('df_finall','wb').write(pickle.dumps(df_finall))
Out[60]:
463914

Variação intra-anual por biomas

<<<

In [63]:
monthly_biome = [ df_finall[n: 12*17:12].sum() for n in range(12)]
monthly_biome = [mb.groupby(biome_nums).sum()/areas_biome for mb in monthly_biome]
In [64]:
denominador2 = np.log1p(max([ mb.max() for mb in monthly_biome]))
In [65]:
denominador2
Out[65]:
9.9095674648050416
In [ ]:
for mo in range(12):
    fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
    for spine in plt.gca().spines.values():
        spine.set_visible(False)
    cmap = plt.get_cmap('OrRd')


    min_val = 0
    max_val = 1

    norm = cls.Normalize(min_val, max_val)
    cmmapable = cm.ScalarMappable(norm, cmap)
    cmmapable.set_array(range(min_val, max_val))

    ecos_info, ecos = get_ecos()
    

    total_trans = np.log1p(monthly_biome[mo])/denominador2

    patches = []
    for info, ec in zip(ecos_info,ecos):
        patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
        != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock

    ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


    title = 'Biomes Index Burned ' +  calendar.month_name[mo + 1]

    cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
    cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

    cb.set_label(title, fontsize=20, family='Times New Roman')
    cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
    plt.show()
    fig.savefig('biomeslogtransform' + calendar.month_name[mo + 1], dpi=1200, bbox_inches='tight')











In [67]:
mo = 11
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
    spine.set_visible(False)
cmap = plt.get_cmap('OrRd')


min_val = 0
max_val = 1

norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))

ecos_info, ecos = get_ecos()


total_trans = np.log1p(monthly_biome[mo])/denominador2

patches = []
for info, ec in zip(ecos_info,ecos):
    patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
    != 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock

ax.add_collection(PatchCollection(patches, match_original= True,  zorder=2))


title = 'Biomes Index Burned ' +  calendar.month_name[mo + 1]

cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal") 

cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + calendar.month_name[mo + 1], dpi=1200, bbox_inches='tight')
In [68]:
writer = ExcelWriter('comdezembro.xlsx',engine='xlsxwriter')
In [69]:
df_finall.to_excel(writer,sheet_name='Burned Pixels',engine='xlsxwriter')
In [72]:
writer.save()
In [2]:
%qtconsole